
# Run PROPKA3 on all PDB files

for i in $(ls *.pdb)
do
propka3 $i
done

# Extract the SUMMARY section from each PROPKA output file

for i in $(ls *.pka)
do
sed -n '/SUMMARY/,/--/p' $i > ${i%.pka}-report.txt
done

# 3) Filter residues with predicted pKa values between 6.0 and 7.2 

for i in *-report.txt
do
  awk '{
    res=$1; pos=$2; pka=$4;
    if (pka+0 >= 6.0 && pka+0 <= 7.2) print res, pos, pka
  }' "$i" > "${i%-report.txt}-6.0_7.2.txt"
done